Product development management involves, in part, planning, organizing, securing and managing resources to bring about the successful completion of a project with respect to specific goals and objectives. Project managers can manage resources using, for example, Agile development approaches, which are characterized by factors such as relatively short time-frame intervals (often referred to as sprints or iterations), delivery of certain goals at the end of each iteration, and regular adaptation of requirements and designs in response to changing circumstances. Exemplary changes in circumstances include changes in business goals, changes driven by customer feedbacks, changes driven by improved understanding of technological challenges, changes to downstream features based on cumulative knowledge, changes in skills and resources, and changes derived from improved knowledge of estimates of work completion based on team velocity.
Under Agile development methods, a project can be organized into one or more features with each feature delivering a package of related functionalities that an end user generally expects to get all at once. In turn, each feature can be broken down into a collection of related stories with each story defining a particular functionality. For example, given a feature involving programming inline table resizing, it can be broken down into three stories—resizing columns, resizing rows and resizing the table itself. In addition, a working feature or product can be produced at the end of a release, during which the feature or product is refined through successive iterations. Typically, each iteration involves a team working through a full development cycle including the phases planning, designing and testing. Thus, Agile methods minimize overall risks by allowing a project to adapt to changes quickly.
Even though the Agile model is generally preferred by developers, the model still poses many challenges. One challenge for any team of developers is trying to accommodate changes in customer priorities and demands throughout the life cycle of a project. Another challenge is trying to better estimate at a granular level how many and different types of stories for any given feature or project the team can deliver over a release or even an iteration. In many cases, a team may not be able to deliver all the stories in a single iteration or a release due to various subjective and objective constraints coming from stakeholders (e.g., project managers and/or customers). Furthermore, fluctuations in constraints and resource availability make project planning even more difficult.